Enterprises have become increasingly dependent on computer network infrastructures to provide services and accomplish mission-critical tasks. Indeed, the performance and efficiency of these network infrastructures have become critical as enterprises increase their reliance on distributed computing environments and wide area computer networks. The widely-used TCP/IP protocol suite, which implements the world-wide data communications network environment called the Internet and is employed in many local area networks, omits any explicit supervisory function over the rate of data transport over the various devices that comprise the network. While there are certain perceived advantages, this characteristic has the consequence of juxtaposing very high-speed packets and very low-speed packets in potential conflict and produces certain inefficiencies. Certain loading conditions degrade performance of networked applications and can even cause instabilities which could lead to overloads that could stop data transfer temporarily. The above-identified U.S. Patents and patent applications provide explanations of certain technical aspects of a packet based telecommunications network environment, such as Internet/Intranet technology based largely on the TCP/IP protocol suite, and describe the deployment of bandwidth management solutions to monitor and manage network environments using such protocols and technologies.
Enterprises network topologies can span a vast array of designs and connection schemes depending on the enterprises resource requirements, desired service levels, costs and the like. Enterprise network design topologies often include redundant LAN and WAN segments in the enterprises intranet, and multiple paths to extranets and the Internet. Enterprises that cannot afford the expense of private leased-lines to develop their own WANs, often employ frame relay, or other packet switched networks, together with Virtual Private Networking (VPN) technologies to connect private enterprise sites via a service provider's public network or the Internet. Some enterprises also use VPN technology to create extranets with customers, suppliers, and vendors.
Indeed, as enterprises deploy these, network technologies, an increasing number of remote and/or thin client access infrastructures have been developed to allow remote users to access centrally-managed, network applications over a computer network. The Citrix® Presentation Server, offered by Citrix Systems, Inc. of Fort Lauderdale, Fla., allows users to connect to a central server and securely access one or more network applications hosted on the enterprises network infrastructure. According to the Citrix® deployment architecture, remote users access a central remote access server with a remote access client application. The remote access server and client communicate using the Independent Computing Architecture (ICA) protocol, a protocol that operates at the application, presentation and session layers of the OSI reference model. The ICA protocol and architecture separates screen updates and user input processing from the rest of the application logic and processing functions. When using a remote access client, application logic executes on the remote access server and only screen updates, mouse movements and keystrokes, are transmitted over the ICA session between the server and client. According to the Citrix architecture, virtual channel drivers, corresponding to different aspects of the ICA session, provide virtual channel data in the form of ICA command packets to a driver that packages the data into metaframes. The metaframes are ultimately provided to a TCP/IP protocol stack for transmission across the network. The Citrix protocol also features Priority Packet Tagging, which allows for Quality of Service (QoS) solution by allowing the ability to prioritize within ICA sessions based on the virtual channel data being transmitted.
Generally speaking, however, an ICA session operates using a single, persistent TCP connection between the remote access client and server. While the priority tags discussed above allow a QoS solution to distinguish between, and therefore, prioritize different ICA sessions, this scheme is problematic to a QoS solution that would allow for differentiated treatment of various data flows within a given ICA session. For example, applying a priority scheme to data frames corresponding to a single ICA session over a persistent TCP connection is problematic, since prioritizing some packets over others may result in out-of-order packet transmissions which may cause the TCP functionality on the receiving end system to cease to operate in a workable manner. Accordingly, it is difficult to prioritize ICA command packets carrying mouse movement data over printer traffic.
In light of the foregoing, a need in the art exists for methods, apparatuses and systems that allow for network QoS solutions to prioritize the flow of data within a remote access session. Embodiments of the present invention substantially fulfill this need.